﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Общ)
	///</summary>
	[DataContract]
	public enum СпособыНачисленияАмортизацииНМА
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
	///<summary>
	///(Общ)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"9e13ee7e-d866-4e0c-8857-5bd377806124\", \"Представление\":\"Линейный\"}")]
		Линейный = 0,
	///<summary>
	///(Общ)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"95678a97-abd4-4364-b60b-e4c4e97c2173\", \"Представление\":\"УменьшаемогоОстатка\"}")]
		УменьшаемогоОстатка = 1,//Уменьшаемого остатка
	///<summary>
	///(Общ)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"286e4a6d-91d7-4db6-95e5-94ae91de51dd\", \"Представление\":\"ПропорциональноОбъемуПродукции\"}")]
		ПропорциональноОбъемуПродукции = 2,//Пропорционально объему продукции (работ)
	}
	public static partial class СпособыНачисленияАмортизацииНМА_Значения//:ПеречислениеСсылка
	{
		///<summary>
		///(Общ)
		///</summary>
		public static readonly Guid Линейный = new Guid("d35b5788-8077-2461-4e0c-d8669e13ee7e");
		///<summary>
		///(Общ)
		///</summary>
		public static readonly Guid УменьшаемогоОстатка = new Guid("c4e40bb6-7ce9-7321-4364-abd495678a97");//Уменьшаемого остатка
		///<summary>
		///(Общ)
		///</summary>
		public static readonly Guid ПропорциональноОбъемуПродукции = new Guid("ae94e595-de91-dd51-4db6-91d7286e4a6d");//Пропорционально объему продукции (работ)
		public static СпособыНачисленияАмортизацииНМА Получить(this СпособыНачисленияАмортизацииНМА Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СпособыНачисленияАмортизацииНМА Получить(this СпособыНачисленияАмортизацииНМА Значение, Guid Ссылка)
		{
			if(Ссылка == Линейный)
			{
				return СпособыНачисленияАмортизацииНМА.Линейный;
			}
			else if(Ссылка == УменьшаемогоОстатка)
			{
				return СпособыНачисленияАмортизацииНМА.УменьшаемогоОстатка;
			}
			else if(Ссылка == ПропорциональноОбъемуПродукции)
			{
				return СпособыНачисленияАмортизацииНМА.ПропорциональноОбъемуПродукции;
			}
			return СпособыНачисленияАмортизацииНМА.ПустаяСсылка;
		}
		public static byte[] Ключ(this СпособыНачисленияАмортизацииНМА Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СпособыНачисленияАмортизацииНМА Значение)
		{
			switch (Значение)
			{
				case СпособыНачисленияАмортизацииНМА.Линейный: return Линейный;
				case СпособыНачисленияАмортизацииНМА.УменьшаемогоОстатка: return УменьшаемогоОстатка;
				case СпособыНачисленияАмортизацииНМА.ПропорциональноОбъемуПродукции: return ПропорциональноОбъемуПродукции;
			}
			return Guid.Empty;
		}
	}
}